/**
 * 解析所有模块下国际化资源文件装配到主资源文件中
 */
import config from '@/common/app/config.js'
const systemNames = window.systemConfig.SYSTEM_NAMES || [];

const utils = {
  // 判断当前子系统是否需要进行封装
  hasSystem (systemName) {
    // 如果当前路由不是在common目录下，则根据配置的系统名称过滤
    if (systemName !== 'common') {
      // 如果有配置子系统加载，并且当前子系统不在配置的子系统配种，则认为不需要封装当前子系统
      if (systemNames && systemNames.length && systemNames.indexOf(systemName) === -1 && window.systemConfig.ONLY_LOAD_SYSTEM) {
        return false;
      }
    }
    return true;
  }
}

const langKeys = [];
for (let key in config.LANGUAGE_CONFIG) {
  langKeys.push(key);
}
// 公共语种配置
const businessContext = require.context('@/business/lang', true, /\.js$/);
let businessLanguage = {};
businessContext.keys().forEach(key => {
  // 如果当前路由不是在common目录下，则根据配置的系统名称过滤
  if (!utils.hasSystem(key)) {
    return;
  }
  const tempKey = key.split('/');
  const langKey = tempKey[tempKey.length - 1].split('.js')[0];
  if (langKeys.indexOf(langKey) !== -1) {
    businessLanguage[langKey] = Object.assign((businessLanguage[langKey] || {}), businessContext(key).default);
  }
});
export default businessLanguage;
